﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace AgendaDoEstudante.Models
{
    public class AgendaContext : DbContext
    {
        public DbSet<Agenda> Agendas { get; set; }
        public DbSet<Lista> Listas { get; set; }
        public DbSet<Item> Itens { get; set; }
    }

    public class Agenda
    {
        [HiddenInput(DisplayValue = false)]
        public int Id { get; set; }
        [Required(ErrorMessage="Assunto é um campo obrigatório.")]
        public string Assunto { get; set; }
        [Required(ErrorMessage="Descrição é um campo obrigatório.")]
        [DisplayName("Descrição")]
        public string Descricao { get; set; }
        [Required(ErrorMessage = "Prioridade é um campo obrigatório.")]
        public string Prioridade { get; set; }
        [Required(ErrorMessage = "Data é um campo obrigatório.")]
        [DataType(DataType.Date)]
        public DateTime Data { get; set; }
        [HiddenInput(DisplayValue = false)]
        public int UserId { get; set; }
    }

    public class Item
    {
        [HiddenInput(DisplayValue = false)]
        public int ItemId { get; set; }
        [Required(ErrorMessage = "Nome é um campo obrigatório.")]
        public string Nome { get; set; }
        public bool Feito { get; set; }
        [HiddenInput(DisplayValue = false)]
        public int ListaId { get; set; }
    }

    public class Lista
    {
        [HiddenInput(DisplayValue = false)]
        public int ListaId { get; set; }
        [Required(ErrorMessage = "Nome é um campo obrigatório.")]
        public string Nome { get; set; }
        public List<Item> Itens { get; set; }
        [HiddenInput(DisplayValue=false)]
        public int UserId { get; set; }
    }
}